草庐IT

ML 方法

全部标签

c# - C#中的默认方法参数

如何使方法具有默认参数值? 最佳答案 您只能在C#4中执行此操作,它同时引入了namedargumentsandoptionalparameters:publicvoidFoo(intx=10){Console.WriteLine(x);}...Foo();//Prints10请注意,默认值必须是一个常量-一个正常的编译时常量(例如文字)或:值类型的无参数构造函数default(T)对于某些类型T另请注意,默认值嵌入在调用者的程序集中(假设您省略了相关参数)-因此,如果您更改默认值而不重建调用代码,您仍然会看到旧值。这(以及C#4中

c# - 我可以在 Rhino-Mocks 3.6 中使用 AAA 语法测试方法调用顺序吗?

是否可以在Rhino-mocks3.6中使用AAA语法测试以下示例,如果方法1调用1st,然后调用方法2,然后调用方法3,在Rhino-mocks3.6中?//Assertvarmock=MockRepository.GenerateMock();//ActmyObject.Service=mock;//HowshouldIchangethisparttoensurethatRhinoMockscheckthecallorderaswell?mock.AssertWasCalled(m=>m.Method1());mock.AssertWasCalled(m=>m.Method2())

C#:Swap 方法的良好/最佳实现

我读了这个postaboutcardshuffling在许多混洗和排序算法中,您需要交换列表或数组中的两个项目。但是,好的且高效的Swap方法是什么样的?假设一个T[]和List.您如何最好地实现一种方法来交换这两项中的两项?Swap(refcards[i],refcards[n]);//HowisSwapimplemented? 最佳答案 好吧,您发布的代码(refcards[n])只能使用数组(而不是列表)-但您可以简单地使用(wherefoo>和bar是两个值):staticvoidSwap(refintfoo,refintb

c# - 将方法作为参数传递

这个问题在这里已经有了答案:PassMethodasParameterusingC#(13个答案)关闭2年前。我希望能够将方法作为参数传递。例如..//reallydodgycodepublicvoidPassMeAMethod(stringtext,Methodmethod){DoSomething(text);//callthemethod//method1();Foo();}publicvoidmethodA(){//Dostuff}publicvoidmethodB(){//Dostuff}publicvoidTest(){PassMeAMethod("callingmetho

c# - 在 LINQ 中用 SingleOrNew() 方法代替 SingleOrDefault() 怎么样?

SingleOrDefault()方法很棒,因为如果您调用它的集合为空,它不会抛出异常。但是,有时我想要的是在不存在的情况下获取某种类型的新对象。例如,如果我可以执行以下操作,那就太好了:varclient=db.Clients.Where(c=>c.Name=="SomeClient").SingleOrNew();这样我就不必检查它是否为null,如果它是创建一个新的,我总是知道我的client对象将是我可以立即使用。有什么想法吗? 最佳答案 真的,您只想使用nullcoalescing运营商在这里。示例:varclient=d

c# - 现在从C#访问数据库最常用的方法是什么

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion好吧,我问这个问题是因为我完全糊涂了。我曾经使用普通方法从C#访问数据库(我的意思是使用SQLConnection、OracleConnection、SQLCommand、executequery等)。然后我听说了ADO.NET、ORM并学习了NHibernate(不是专业人士,但我可以管理)。最近我没有看到任何关于NHibernate的特别事件。我周围曾经使用NHibernate(并且是

c# - 最小起订量测试无效方法

您好,我是最小起订量测试的新手,很难做一个简单的断言。我正在使用一个界面publicinterfaceIAdd{voidadd(inta,intb);}IAdd接口(interface)的起订量是:Mockmockadd=newMock();mockadd.Setup(x=>x.add(It.IsAny(),It.IsAny()).callback((inta,intb)=>{a+b;});IAddtesting=mockadd.Object;因为add方法是无效的,它不会返回任何值来断言。我如何断言此设置? 最佳答案 为什么要使用

c# - 比较两个列表的最快方法

我有一个列表(Foo),我想看看它是否等于另一个列表(foo)。最快的方法是什么? 最佳答案 从3.5开始,您可以为此使用LINQ函数:Listl1=newList{"Hello","World","How","Are","You"};Listl2=newList{"Hello","World","How","Are","You"};Console.WriteLine(l1.SequenceEqual(l2));它也知道提供你自己的比较器的重载 关于c#-比较两个列表的最快方法,我们在S

c# - 解决C#内存泄漏的方法有哪些

我正在学习C#。据我所知,您必须正确设置才能让垃圾收集器真正删除应有的所有内容。我正在寻找多年来从你那里学到的智慧,聪明人。我有C++背景,非常习惯代码味道和开发模式。我想了解C#中的代码味道是什么样的。给我建议!删除内容的最佳方法是什么?你怎么知道什么时候有“内存泄漏”?编辑:我正在尝试开发一个“内存管理要始终做的事情”的list非常感谢。 最佳答案 C#,.NETFramework使用托管内存,所有内容(但分配的​​非托管资源)都被垃圾收集。可以安全地假设托管类型总是被垃圾收集。这包括数组、类和结构。随意执行int[]stuff

c# - 在 C# 中获取字符串中的第一个单词和其余单词的最佳方法

在C#中varparameters=fromlineinparameterTextBox.Linesselectnew{name=line.Split('').First(),value=line.Split('').Skip(1)};有没有办法不用拆分两次就可以做到这一点? 最佳答案 您可以将拆分存储在let子句中varparameters=fromlineinparameterTextBox.Linesletsplit=line.Split('')selectnew{name=split.First(),value=split.